Technical Field
The present disclosure relates generally to universal serial bus (USB) hosts and devices and, more specifically, to apparatus and methods for enabling USB hosts and devices to dynamically switch roles.
Background Information
Over the past 20 years or so, USB has emerged as the preferred, if not dominant, standard for interfacing personal computers or other consumer electronics products with mass storage, printers, digital cameras, media players, keyboards and the like. Users enjoy the convenience and simplicity of USB, while manufacturers and software developers enjoy the benefits of supporting a single standard interface, although there are several different USB specifications that include different speeds.
According to the USB specifications, a given piece of equipment must operate as either a USB host or a USB device. The roles of USB host and USB device have implications with respect to which piece of equipment controls the communication path between the host and device, supplies power (or consumes power supplied by the other), and the like. The original USB specifications were adopted during a period of time when PCs were a dominant user platform and therefore a natural paradigm for a USB host. However, the emergence of smartphones, tablets and other products which typically operate as USB devices, but which contain ample processing power, memory and other resources (e.g., applications) to operate as USB hosts, has created the potential for new services and user experiences.
One USB specification known as USB On-The-Go or OTG provides for USB devices to switch roles and become USB hosts when appropriate (e.g., a digital camera, which operates as a USB device when connected to a PC, switches to become a host when connected to a flash drive). However, OTG has at least two significant disadvantages. First, OTG requires a different connector with an additional pin and a special cable, and will not work with the widely used USB Type A connector. Second, OTG requires a direct connection between a USB host and a USB device, and will not work if one or more USB hubs are present in the communication path between the host and device. This is because conventional USB hubs adhere to the standard USB topology in which one port of the USB hub is designated the upstream port and all other ports are designated downstream ports.
At least one vendor has attempted to address the problem of USB hub port designation by introducing a configurable USB hub in which the upstream/downstream designations of some ports may be changed. However, in order to interoperate with the configurable USB hub, a USB device must include a full USB stack including hub support which may not be possible or desirable. Further, when a USB host and USB device connected to the configurable hub switch roles, the USB host-turned-device would not be capable of accessing any other devices on the same USB bus tree.